package day1116;

public class Sync2 {
    /**
     * synchronized关键字的重入锁，就是说，该对象已经拥有一个锁，还可以在方法内调用其他加synchronized的方法
     * ，的一种机制
     * 如果 方法执行中碰到异常会立即释放锁
     * 当然在继承中也是线程安全的，子类与父类都同步
     */
    public synchronized  void me1(){
        System.out.println("me1");
        me2();
    }
    public synchronized  void me2(){
        System.out.println("me2");
me3();
    }
    public synchronized  void me3(){
        System.out.println("me3");

    }

    public static void main(String[] args){
        final Sync2 sd=new Sync2();
        Thread t=new Thread(() -> {
          sd.me1();
        });
        t.start();
    }


}
